package com.stefanini.pe.bbva.bp.in.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;

import org.springframework.stereotype.Controller;

import com.stefanini.pe.bbva.bp.in.to.MontoCalculadoraTO;
import com.stefanini.pe.bbva.bp.in.to.PosicionRebalanceoTO;
import com.stefanini.pe.bbva.bp.in.to.Rebalanceo;
import com.stefanini.pe.bbva.bp.in.to.RebalanceoTO;

@Controller(value="calculadoraModel")
@SessionScoped
public class CalculadoraModel {
	private List listaCalculoSimulador;
	private HashMap totalesRentabilidad;
	private HashMap calculosSimulacion;
	private List listaDetalleDistribucion;
	private List<Map<String, Object>> listaDetalleDistribucionMod;
	private List listaDetalleDistribucionBack;
	private List listaDistribucionPorCategoria;
	private HashMap totalesDistribucionAct;
	private HashMap totalesDetalleDistribucion;
	private String styleInputReadOnly;
	private boolean mostrarCerrarCalculadora;
	private List<Map<String, Object>> listarDistribucionCategoriaActivos;
	private List<Map<String, Object>> listaDetalleDistribucionModRecursos;
	private String monedaAntigua;
	private List<PosicionRebalanceoTO> listaDetallePosicionActual;
	private List<PosicionRebalanceoTO> listaDetallePosicionSugerida;
	private PosicionRebalanceoTO totalDetallePosicionActual;
	private PosicionRebalanceoTO totalDetallePosicionSugerida;
	private RebalanceoTO totalDetalleDistribucionMod;
	private RebalanceoTO totalDetalleDistribucionModRecursos;
	private Map<String,BigDecimal> totalDistribucionCategoriaActivos;
	private Map<String,BigDecimal> totalDistribucionCategoriaActivosMoneda;
	
	private List<RebalanceoTO> listaDetalleDistribucionModProcesada;
	private List<RebalanceoTO> listaDetalleDistribucionModRecursosProcesada;

	private ArrayList<MontoCalculadoraTO> listaSeleccionada;
	private RebalanceoTO filaSeleccionada;
	private String monedaSeleccionada; 
	private String monedaSeleccionadaCombo;
	
	private List<SelectItem> listaOperaciones;
	private String comentario;
	private boolean tipoCodCliente;
	
	private Rebalanceo filaSeleccionadaHistorico;
	
	public CalculadoraModel() {
		listaOperaciones=new ArrayList<SelectItem>();
		tipoCodCliente=false;
		mostrarCerrarCalculadora = true;
	}
	
	public List<SelectItem> getListaOperaciones() {
		return listaOperaciones;
	}

	public void setListaOperaciones(List<SelectItem> listaOperaciones) {
		this.listaOperaciones = listaOperaciones;
	}

	public List getListaCalculoSimulador() {
		return listaCalculoSimulador;
	}

	public void setListaCalculoSimulador(List listaCalculoSimulador) {
		this.listaCalculoSimulador = listaCalculoSimulador;
	}

	public HashMap getTotalesRentabilidad() {
		return totalesRentabilidad;
	}

	public void setTotalesRentabilidad(HashMap totalesRentabilidad) {
		this.totalesRentabilidad = totalesRentabilidad;
	}

	public HashMap getCalculosSimulacion() {
		return calculosSimulacion;
	}

	public void setCalculosSimulacion(HashMap calculosSimulacion) {
		this.calculosSimulacion = calculosSimulacion;
	}

	public List getListaDetalleDistribucion() {
		return listaDetalleDistribucion;
	}

	public void setListaDetalleDistribucion(List listaDetalleDistribucion) {
		this.listaDetalleDistribucion = listaDetalleDistribucion;
	}

	public List getListaDistribucionPorCategoria() {
		return listaDistribucionPorCategoria;
	}

	public void setListaDistribucionPorCategoria(List listaDistribucionPorCategoria) {
		this.listaDistribucionPorCategoria = listaDistribucionPorCategoria;
	}

	public HashMap getTotalesDetalleDistribucion() {
		return totalesDetalleDistribucion;
	}

	public void setTotalesDetalleDistribucion(HashMap totalesDetalleDistribucion) {
		this.totalesDetalleDistribucion = totalesDetalleDistribucion;
	}

	public HashMap getTotalesDistribucionAct() {
		return totalesDistribucionAct;
	}

	public void setTotalesDistribucionAct(HashMap totalesDistribucionAct) {
		this.totalesDistribucionAct = totalesDistribucionAct;
	}

	public List getListaDetalleDistribucionBack() {
		return listaDetalleDistribucionBack;
	}

	public void setListaDetalleDistribucionBack(List listaDetalleDistribucionBack) {
		this.listaDetalleDistribucionBack = listaDetalleDistribucionBack;
	}

	public String getStyleInputReadOnly() {
		return styleInputReadOnly;
	}

	public void setStyleInputReadOnly(String styleInputReadOnly) {
		this.styleInputReadOnly = styleInputReadOnly;
	}

	public boolean isMostrarCerrarCalculadora() {
		return mostrarCerrarCalculadora;
	}

	public void setMostrarCerrarCalculadora(boolean mostrarCerrarCalculadora) {
		this.mostrarCerrarCalculadora = mostrarCerrarCalculadora;
	}	
	
	public List<Map<String, Object>> getListaDetalleDistribucionMod() {
		return listaDetalleDistribucionMod;
	}

	public void setListaDetalleDistribucionMod(
			List<Map<String, Object>> listaDetalleDistribucionMod) {
		this.listaDetalleDistribucionMod = listaDetalleDistribucionMod;
	}

	public List<Map<String, Object>> getListarDistribucionCategoriaActivos() {
		return listarDistribucionCategoriaActivos;
	}

	public void setListarDistribucionCategoriaActivos(
			List<Map<String, Object>> listarDistribucionCategoriaActivos) {
		this.listarDistribucionCategoriaActivos = listarDistribucionCategoriaActivos;
	}

	public String getMonedaAntigua() {
		return monedaAntigua;
	}

	public void setMonedaAntigua(String monedaAntigua) {
		this.monedaAntigua = monedaAntigua;
	}

	public List<Map<String, Object>> getListaDetalleDistribucionModRecursos() {
		return listaDetalleDistribucionModRecursos;
	}

	public void setListaDetalleDistribucionModRecursos(
			List<Map<String, Object>> listaDetalleDistribucionModRecursos) {
		this.listaDetalleDistribucionModRecursos = listaDetalleDistribucionModRecursos;
	}

	public List<PosicionRebalanceoTO> getListaDetallePosicionActual() {
		return listaDetallePosicionActual;
	}

	public void setListaDetallePosicionActual(
			List<PosicionRebalanceoTO> listaDetallePosicionActual) {
		this.listaDetallePosicionActual = listaDetallePosicionActual;
	}

	public List<PosicionRebalanceoTO> getListaDetallePosicionSugerida() {
		return listaDetallePosicionSugerida;
	}

	public void setListaDetallePosicionSugerida(
			List<PosicionRebalanceoTO> listaDetallePosicionSugerida) {
		this.listaDetallePosicionSugerida = listaDetallePosicionSugerida;
	}

	public PosicionRebalanceoTO getTotalDetallePosicionActual() {
		return totalDetallePosicionActual;
	}

	public void setTotalDetallePosicionActual(
			PosicionRebalanceoTO totalDetallePosicionActual) {
		this.totalDetallePosicionActual = totalDetallePosicionActual;
	}

	public PosicionRebalanceoTO getTotalDetallePosicionSugerida() {
		return totalDetallePosicionSugerida;
	}

	public void setTotalDetallePosicionSugerida(
			PosicionRebalanceoTO totalDetallePosicionSugerida) {
		this.totalDetallePosicionSugerida = totalDetallePosicionSugerida;
	}

	public RebalanceoTO getTotalDetalleDistribucionMod() {
		if(totalDetalleDistribucionMod==null){
			totalDetalleDistribucionMod= new RebalanceoTO();
		}
		return totalDetalleDistribucionMod;
	}

	public void setTotalDetalleDistribucionMod(
			RebalanceoTO totalDetalleDistribucionMod) {
		this.totalDetalleDistribucionMod = totalDetalleDistribucionMod;
	}

	public RebalanceoTO getTotalDetalleDistribucionModRecursos() {
		if(totalDetalleDistribucionModRecursos==null){
			totalDetalleDistribucionModRecursos= new RebalanceoTO();
		}
		return totalDetalleDistribucionModRecursos;
	}

	public void setTotalDetalleDistribucionModRecursos(
			RebalanceoTO totalDetalleDistribucionModRecursos) {
		this.totalDetalleDistribucionModRecursos = totalDetalleDistribucionModRecursos;
	}

	public Map<String, BigDecimal> getTotalDistribucionCategoriaActivos() {
		return totalDistribucionCategoriaActivos;
	}

	public void setTotalDistribucionCategoriaActivos(
			Map<String, BigDecimal> totalDistribucionCategoriaActivos) {
		this.totalDistribucionCategoriaActivos = totalDistribucionCategoriaActivos;
	}	

	public List<RebalanceoTO> getListaDetalleDistribucionModProcesada() {
		return listaDetalleDistribucionModProcesada;
	}
	public void setListaDetalleDistribucionModProcesada(
			List<RebalanceoTO> listaDetalleDistribucionModProcesada) {
		this.listaDetalleDistribucionModProcesada = listaDetalleDistribucionModProcesada;
	}

	public List<RebalanceoTO> getListaDetalleDistribucionModRecursosProcesada() {
		return listaDetalleDistribucionModRecursosProcesada;
	}

	public void setListaDetalleDistribucionModRecursosProcesada(
			List<RebalanceoTO> listaDetalleDistribucionModRecursosProcesada) {
		this.listaDetalleDistribucionModRecursosProcesada = listaDetalleDistribucionModRecursosProcesada;
	}
	public RebalanceoTO getFilaSeleccionada() {
		return filaSeleccionada;
	}

	public void setFilaSeleccionada(RebalanceoTO filaSeleccionada) {
		this.filaSeleccionada = filaSeleccionada;
	}

	public ArrayList<MontoCalculadoraTO> getListaSeleccionada() {
		return listaSeleccionada;
	}

	public void setListaSeleccionada(ArrayList<MontoCalculadoraTO> listaSeleccionada) {
		this.listaSeleccionada = listaSeleccionada;
	}

	public String getMonedaSeleccionada() {
		return monedaSeleccionada;
	}

	public void setMonedaSeleccionada(String monedaSeleccionada) {
		this.monedaSeleccionada = monedaSeleccionada;
	}

	public String getComentario() {
		return comentario;
	}

	public void setComentario(String comentario) {
		this.comentario = comentario;
	}

	public Map<String, BigDecimal> getTotalDistribucionCategoriaActivosMoneda() {
		return totalDistribucionCategoriaActivosMoneda;
	}

	public void setTotalDistribucionCategoriaActivosMoneda(
			Map<String, BigDecimal> totalDistribucionCategoriaActivosMoneda) {
		this.totalDistribucionCategoriaActivosMoneda = totalDistribucionCategoriaActivosMoneda;
	}

	public String getMonedaSeleccionadaCombo() {
		return monedaSeleccionadaCombo;
	}

	public void setMonedaSeleccionadaCombo(String monedaSeleccionadaCombo) {
		this.monedaSeleccionadaCombo = monedaSeleccionadaCombo;
	}

	public boolean isTipoCodCliente() {
		return tipoCodCliente;
	}

	public void setTipoCodCliente(boolean tipoCodCliente) {
		this.tipoCodCliente = tipoCodCliente;
	}

	public Rebalanceo getFilaSeleccionadaHistorico() {
		return filaSeleccionadaHistorico;
	}

	public void setFilaSeleccionadaHistorico(Rebalanceo filaSeleccionadaHistorico) {
		this.filaSeleccionadaHistorico = filaSeleccionadaHistorico;
	}
}
